package com.soulless.seriable;

import java.io.Serializable;

/**
 * @author zenglei
 * @Description 功能描述
 * @date 2022/11/17 00:37
 */
public class SeriableSingleton implements Serializable {

    /**
     * 序列化
     * 把内存中对象的状态转换为字节码的形式
     * 然后把字节码通过IO输出流，写到磁盘上（持久化）
     *
     * 反序列化
     * 将持久化的字节码内容，通过IO输入流读到内存中
     * 转化成一个java对象
     */

    public final static SeriableSingleton INSTANCE = new SeriableSingleton();

    private SeriableSingleton() {}

    public static  SeriableSingleton getInstance() {
        return INSTANCE;
    }

    /**
     * java.io.ObjectStreamClass#hasReadResolveMethod()会调用此方法，此方法必须这样定义
     * @return
     */
    private Object readResolve() {
        return INSTANCE;
    }

}
